File: Heading_Mode.c

    1   /*
    2    * File: Heading_Mode.c
    3    *
    4    * Code generated for Simulink model 'Heading_Mode'.
    5    *
    6    * Model version                  : 1.146
    7    * Simulink Coder version         : 8.5 (R2013b) 08-Aug-2013
    8    * C/C++ source code generated on : Mon Feb 03 08:13:34 2014
    9    *
   10    * Target selection: ert.tlc
   11    * Embedded hardware selection: 32-bit Embedded Processor
   12    * Code generation objectives: Unspecified
   13    * Validation result: Not run
   14    */
   15   
   16   #include "Heading_Mode.h"
   17   #include "Heading_Mode_private.h"
   18   
   19   /* Output and update for referenced model: 'Heading_Mode' */
   20   void Heading_Mode(const real_T *rtu_PsiRef, const real_T *rtu_Psi, const real_T *
   21                     rtu_TAS, real_T *rty_PhiCmd, rtB_Heading_Mode *localB, real_T
   22                     rtp_hdgGain)
   23   {
   24     real_T rtb_sum;
   25     real_T y;
   26   
   27     /* Sum: '<S1>/sum' */
   28     rtb_sum = (*rtu_PsiRef) - (*rtu_Psi);
   29   
   30     /* Signum: '<S1>/signum' */
   31     if (rtb_sum < 0.0) {
   32       y = -1.0;
   33     } else if (rtb_sum > 0.0) {
   34       y = 1.0;
   35     } else {
   36       y = rtb_sum;
   37     }
   38   
   39     /* Sum: '<S1>/sum1' incorporates:
   40      *  Abs: '<S1>/abs'
   41      *  Constant: '<S1>/constant'
   42      *  Constant: '<S1>/constant1'
   43      *  Product: '<S1>/product'
   44      *  Product: '<S1>/product1'
   45      *  Product: '<S1>/product2'
   46      *  Rounding: '<S1>/floor'
   47      *  Signum: '<S1>/signum'
   48      *  Sum: '<S1>/sum2'
   49      */
   50     localB->hdgError = rtb_sum - (y * (floor((fabs(rtb_sum) + 180.0) / 360.0) *
   51       360.0));
   52   
   53     /* Product: '<Root>/Product' incorporates:
   54      *  Gain: '<Root>/Disp Gain'
   55      *
   56      * Block requirements for '<Root>/Product':
   57      *  1. 1.10. Heading Performance
   58      *
   59      * Block requirements for '<Root>/Disp Gain':
   60      *  1. 1.10. Heading Performance
   61      */
   62     *rty_PhiCmd = (rtp_hdgGain * localB->hdgError) * (*rtu_TAS);
   63   }
   64   
   65   /* Model initialize function */
   66   void Heading_Mode_initialize(rtB_Heading_Mode *localB)
   67   {
   68     /* Registration code */
   69   
   70     /* block I/O */
   71     (void) memset(((void *) localB), 0,
   72                   sizeof(rtB_Heading_Mode));
   73   }
   74   
   75   /*
   76    * File trailer for generated code.
   77    *
   78    * [EOF]
   79    */
   80